package pers.bbw.crr.service;

import com.github.pagehelper.PageInfo;
import org.springframework.web.multipart.MultipartFile;
import pers.bbw.crr.dto.UserSearchDto;
import pers.bbw.crr.entity.User;

import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.util.Map;

/**
 * userService接口
 *
 * @author bbw
 * @date 2024-12-13
 */
public interface UserService {
    /**
     * 查询user
     *
     * @param id user主键
     * @return user
     */
    User selectUserById(int id);

    /**
     * 查询user列表
     *
     * @param user user
     * @return user集合
     */
    PageInfo<User> selectUserList(UserSearchDto dto);

    /**
     * 新增user
     *
     * @param user user
     * @return 结果
     */
    void insertUser(User user, MultipartFile file);

    /**
     * 修改user
     *
     * @param user user
     * @return 结果
     */
    void updateUser(User user, MultipartFile file);

    /**
     * 批量删除user
     *
     * @param ids 需要删除的user主键集合
     * @return 结果
     */
    int deleteUserByIds(int[] ids);

    /**
     * 删除user信息
     *
     * @param id user主键
     * @return 结果
     */
    int deleteUserById(int id);

    /**
     * 获取验证码
     * @author 白博文 0205
     * @param request
     * @return
     * @throws IOException
     */
    Map<Object, Object> captcha(HttpServletRequest request) throws IOException;

    /**
     * 用户注册
     * @author 白博文 0205
     * @param user
     * @param file
     * @return
     */
    boolean register(User user, MultipartFile file);

    /**
     * 登录
     * @author 白博文 0205
     * @param loginInfo
     * @param request
     * @return
     */
    int loginCheck(Map<String, String> loginInfo, HttpServletRequest request);
}
